The fixed and limited amount of bandwidth, i.e. capacity, on a telecommunications or network link make it generally necessary to have a bandwidth allocation and enforcement strategy to maximize the use of this limited resource. In packet-oriented telecommunications systems or networks, the data traffic to be transmitted on a link is packetized and transmitted as data packet flows. The data traffic is typically classified so that in those instances where there is insufficient bandwidth on the link to satisfy all requests for bandwidth, the requests for bandwidth can be prioritized and the limited amount of link bandwidth available allocated based on the data traffic's classification. Data traffic can be classified in a variety of ways and classification can be based on a variety of parameters. Exemplary traffic classifications include real time traffic and opportunistic rate traffic as discussed further below. Because link bandwidth is a limited resource, it is beneficial to be able to share a link's bandwidth for use by multiple classifications of traffic instead of apportioning the bandwidth so that portions of the bandwidth are reserved for use by only one classification of traffic. The sharing of bandwidth avoids the under utilization of the link's bandwidth in those instances where the amount of bandwidth reserved for a particular classification of traffic exceeds the amount of bandwidth necessary to satisfy all outstanding requests for traffic within that classification on the link. Instead of the reserved bandwidth remaining unused in such situations, the reserved bandwidth can instead be allocated for use to satisfy outstanding requests for bandwidth for traffic with a different classification.
Packet-oriented telecommunications or networking equipment such as Session Border Controllers, in some instances, use shared transmission resources such as link bandwidth to carry both real time traffic as well as opportunistic rate traffic. Real time traffic such as, for example, Real-time Transport Protocol (RTP) messages is typically characterized by having bounded end-to-end delay and jitter requirements. Real time traffic is also sometimes characterized as having known bit rates. Examples of real-time traffic include streaming of media, e.g., telephony, video teleconferencing, and interactive data. Opportunistic rate traffic, also sometimes referred to as best effort rate traffic, is sometimes characterized as being data traffic with unspecified bit-rates such as, for example, file data transfer traffic. Another example of opportunistic rate traffic is Message Session Relay Protocol (MSRP) messages carried over a Transmission Control Protocol (TCP) connection.
Packet flow is the flow of traffic. Packet flows corresponding to opportunistic rate traffic are referred to as opportunistic rate packet flows while packet flows corresponding to real time traffic are referred to as real time packet flows.
Real-time Transport Protocol (RTP) was developed by the Audio-Video Transport Working Group of the Internet Engineering Task Force (IETF) and first published in 1996 as RFC 1889, superseded by RFC 3550 in 2003. The Real-time Transport Protocol was designed to address real-time audio and video streaming of data over Internet Protocol networks which require timely delivery of information. It is used in Voice over Internet Protocol (VOIP) applications. The Real-time Transport Protocol achieves this objective through the use of standardized packet format messages. The RTP standard describes a data transfer protocol designed for use in the end-to-end transfer of real time data, a control protocol used to specify quality of service (QoS) feedback and synchronization between media streams, and optional signaling protocols such as Session Initiation Protocol (SIP), and an optional media description protocol such as Session Description Protocol (SDP). Exemplary transport protocols used for real time traffic include User Datagram Protocol (UDP), Transmission Control Protocol (TCP), and Stream Control Transmission Protocol (SCTP). UDP is the most common transport protocol for real time traffic. RTP sessions are used to support the transfer of real time data with one session for each stream.
Internet Engineering Task Force Request For Comment 4975 (IETF RFC 4975) defines the Message Session Relay Protocol (MSRP) for transmitting a series of related messages in the context of a communication session. An MSRP session is setup by using a rendezvous protocol, such as the Session Initiation Protocol (SIP) discussed above. Once the session is setup, MSRP messages are exchanged according to negotiated session parameters to carry session-oriented data, such as chat messages or file transfers. SIP messages which are used to setup the session carry control and signaling information. Session Description Protocol (SDP) is used to carry information about MSRP receipt addresses for each party. Exemplary transport protocols used for opportunistic rate traffic such as MSRP messages include User Datagram Protocol (UDP), Transmission Control Protocol (TCP), and Stream Control Transmission Protocol (SCTP). The Transmission Control Protocol is widely used for opportunistic rate traffic as it favors reliability over timeliness.
Link bandwidth on a network or telecommunications device may be, and often is, shared by real time traffic such as RTP carrying audio and video data, opportunistic rate traffic such as MSRP carrying file transfer data, and control and signaling messages. A session border controller that forwards real-time media and interactive data is one such device. Because of the varied bandwidth requirements of real time traffic, opportunistic rate traffic, and control and signaling traffic, it is quite challenging and difficult to reserve and allocate the proper amount of bandwidth to satisfy the needs of the various incoming data packet streams' bandwidth requests. For example, while the RTP traffic has a bounded end to end delay and jitter requirements, the MSRP traffic does not have a fixed bandwidth requirement and even the maximum expected bandwidth usage for a MSRP session is unknown. This makes it quite difficult to reserve resources and to decide whether a new MSRP session request should be accepted or rejected. In addition, the total bandwidth used by a set of MSRP sessions could vary significantly. This variation can potentially affect the committed bandwidth for RTP media sessions, which in turn affects the quality of voice and video payload carried within RTP flows. Moreover, attempting to optimize the use of a link's bandwidth through bandwidth sharing can lead to additional problems and difficulties in how to control, police, and/or enforce bandwidth allocation and usage policies.
From the above discussion it should be appreciated that there is a need for bandwidth management in packet-oriented telecommunications systems and/or network equipment that use shared transmission bandwidth to carry different classes of traffic such as real time traffic as well as opportunistic rate traffic. While known attempts to address these needs have obtained some level of success there remains a need for new and improved methods and apparatus for bandwidth management in packet-oriented telecommunications systems and/or networks.